#ifndef __MMU_H__
#define __MMU_H__

//PAGINAS USUARIO MAXIMO: 1MB
#define INICIO_PAGINAS_KERNEL   0x00100000
#define FIN_PAGINAS_KERNEL      0x00200000

//PAGINAS USUARIO MAXIMO: 2MB
#define INICIO_PAGINAS_USUARIO  0x00200000
#define FIN_PAGINAS_USUARIO     0x00400000   //ultima direccion del identity map definido en inicializar_mmu

#define TAMANO_PAGINA           0x1000
#define uint unsigned int
#endif

uint* pagina_libre_kernel();
uint* pagina_libre_usuario();

void inicializar_dir_kernel();
void inicializar_mmu();

uint* identity_map(uint cant);

uint* inicializar_dir_usuario();
void mapear_pagina(uint virtual, uint cr3, uint fisica);
void unmapear_pagina(uint virtual, uint cr3);
uint* buscar_entrada(uint virtual, uint cr3);

void copiar_pagina(uint source, uint dest);



